//包含 <系统头文件：gcc自带的c语言头文件      .h: header 头文件
#include<stdio.h>  // standard input output : 标准输入输出流头文件
//功能：输入和输出

int main()  //main函数是所有程序的入口：一个程序只能有一个main函数
{   //main函数的程序主体

    //会把“”括起来的数据输出到终端上
    //\n:在输出的末尾加上一个换行符
    //printf("I am a student\n");

    //变量：在计算机中占用内存，值可以改变的量
    //数据类型
    //关键字：c语言内部定义的一些含有特殊功能和含义的单词
    //int: 整型数据：4个字节 有符号整数
    //int a;//定义一个变量
    //unsigned无符号
    //unsigned int a;
    //a=10;//赋值语句

    //sizeof:计算一个内存的大小
    //%ld:以长整型的形式输出一个数据
    //%d:以整型形式输出一个数据
    //%u:无符号整型
    /*printf("%u\n",a);
    printf("%d\n",a);
    printf("%ld",sizeof(a));*/

    //有符号字符型 ‘字符’
    //char a = 97;
    //%c:输出一个字符
    //printf("%c\n",a);

    //数据类型的本质：内存大小不同
    /*char a=97;
    int b=a; //宽转换：小内存数据类型转大内存数据类型  安全！*/

    //int b=-1;
    //char a=-2;   //窄转换：大数据->小数据 会导致高位丢失
    //printf("%u\n",a);

    //浮点型数据
    //计算机中的小数大部分最终呈现出来的都是近似值
    //计算机中的小数是不能比较相等的  只能做大小判断
    /*if(0.1+0.2==0.3)
    {
        printf("相等\n");
    }
    else{
        printf("不相等\n");
    }*/

   //单精度浮点
   /*float a;
   a=3.1415926;
   //%f 以浮点的形式输出  默认保留小数点后6位小数
   printf("%.3f %ld\n",a,sizeof(a));*/

   /*double a;
   a=3.1415926;
   //lf 双精度格式输出
   printf("%.2lf %ld",a,sizeof(a));*/

    double c=3.11111122;
    printf("%.8f  %d\n",c,sizeof(c));
   //int shor long char float double (long long) (long double)
   //unsigned:无符号关键字
    return 0; //程序的返回值
}